Blockchain technology provides a decentralized, open, Byzantine fault-tolerant transaction mechanism. Blockchain technology is becoming common for various types of Internet interactions, including anonymous online payments, remittance, and the transaction of digital assets.
There are numerous types of different open blockchains. Permission-based blockchains for various industrial use cases are also becoming common. Blockchains, including industrial blockchains, are a distributed system with strong consensus mechanisms that are scalable to support hundreds or thousands of nodes. However, industrial blockchain has more trust on the nodes then general blockchains. Therefore, industrial blockchains can assume the nodes to be crash-faulty only.
Crash fault-tolerance (CFT) protocols are used in distributed systems with unreliable communication channels to maintain consensus among the replicated servers. Cloud storage providers rely on crash fault-tolerant variants such as Paxos consensus algorithms and Raft consensus algorithms to guarantee data consistency for read/write operations. However, existing CFT protocols are only suitable for applications in relatively small networks, i.e., networks with no more than 20 nodes. Modern applications and systems using blockchain can effectively utilize large networks composed of thousands of nodes.
There are two primary challenges when applying conventional CFT protocols to blockchain networks. First, all existing CFT protocols are based on broadcasting channels using leader nodes. Therefore, the leader node can become a bottleneck for the network. Second, when using a CFT protocol, a secure and authenticated channel such as transport layer security (TLS) between any two nodes is assumed. As a result, the computation effort of a node increases with the number of connections to other nodes. This becomes especially burdensome in a relayed network, where the votes of nodes first need to be decrypted and encrypted again for the next relay.